<?php

/**
 * Este es la clase modelo de la tabla "familiar".
 *
 * Los siguientes campos estan disponibles en la tabla 'familiar':
 * @property integer $idfamiliar
 * @property string $nombres
 * @property string $apellido_paterno
 * @property string $apellido_materno
 * @property string $run
 * @property string $nivel_estudios
 * @property string $actividad
 * @property string $apoderado
 * @property string $parentezco
 * @property string $direccion
 * @property string $telefono
 * @property string $email
 *
 * Las siguientes son las relaciones disponible del modelo:
 * @property AlumnoFamiliar[] $alumnoFamiliars
 */
class Familiar extends CActiveRecord
{
	/**
	 * Returns the static model of the specified AR class.
	 * @return Familiar the static model class
	 */
	public $sexos=array('F'=>'Femenino','M'=>'Masculino');
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'familiar';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('nombres, apellido_paterno, apellido_materno, direccion, telefono, run, email', 'required'),
			array('run','unique'),
			array('email','email'),
			array('run','length','min'=>11,'max'=>12),
			array('telefono','length','min'=>6,'max'=>12),
			array('nombres, apellido_paterno, apellido_materno, run, nivel_estudios, actividad, parentezco, direccion, telefono, email', 'length', 'max'=>45, 'min'=>4),
			array('apoderado', 'safe'),
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('idfamiliar, sexo, nombres, apellido_paterno, apellido_materno, run, nivel_estudios, actividad, apoderado, parentezco, direccion, telefono, email', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'alumnos' => array(self::HAS_MANY, 'Alumno', 'alumno_familiar(familiar_idfamiliar, alumno_idalumno)'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'idfamiliar' => 'ID Familiar',
			'nombres' => 'Nombres',
			'apellido_paterno' => 'Apellido Paterno',
			'apellido_materno' => 'Apellido Materno',
			'run' => 'Run',
			'nivel_estudios' => 'Nivel Estudios',
			'actividad' => 'Actividad',
			'apoderado' => 'Apoderado',
			'parentezco' => 'Parentezco',
			'direccion' => 'Dirección',
			'telefono' => 'Teléfono',
			'email' => 'Email',
			'sexo'=>'Sexo'
		);
	}

	/**
	 * Devuelve una lista de modelos basado en la b�squeda o filtro acutal.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;
		
		$criteria->compare('idfamiliar',$this->idfamiliar);
		$criteria->compare('nombres',$this->nombres,true);
		$criteria->compare('apellido_paterno',$this->apellido_paterno,true);
		$criteria->compare('apellido_materno',$this->apellido_materno,true);
		$criteria->compare('run',$this->run,true);
		$criteria->compare('nivel_estudios',$this->nivel_estudios,true);
		$criteria->compare('actividad',$this->actividad,true);
		$criteria->compare('apoderado',$this->apoderado,true);
		$criteria->compare('parentezco',$this->parentezco,true);
		$criteria->compare('direccion',$this->direccion,true);
		$criteria->compare('telefono',$this->telefono,true);
		$criteria->compare('email',$this->email,true);
		$criteria->compare('sexo',$this->sexo,true);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
	public function apoderados()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.
	
		$criteria=new CDbCriteria;
		$criteria->condition='apoderado=1';
		$criteria->compare('idfamiliar',$this->idfamiliar);
		$criteria->compare('nombres',$this->nombres,true);
		$criteria->compare('apellido_paterno',$this->apellido_paterno,true);
		$criteria->compare('apellido_materno',$this->apellido_materno,true);
		$criteria->compare('run',$this->run,true);
		$criteria->compare('nivel_estudios',$this->nivel_estudios,true);
		$criteria->compare('actividad',$this->actividad,true);
		$criteria->compare('apoderado',$this->apoderado,true);
		$criteria->compare('parentezco',$this->parentezco,true);
		$criteria->compare('direccion',$this->direccion,true);
		$criteria->compare('telefono',$this->telefono,true);
		$criteria->compare('sexo',$this->sexo,true);
		$criteria->compare('email',$this->email,true);
	
		return new CActiveDataProvider($this, array(
				'criteria'=>$criteria,
		));
	}
	
	public function hombres()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.
	
		$criteria=new CDbCriteria;
		$criteria->condition='sexo="M"';
		$criteria->compare('idfamiliar',$this->idfamiliar);
		$criteria->compare('nombres',$this->nombres,true);
		$criteria->compare('apellido_paterno',$this->apellido_paterno,true);
		$criteria->compare('apellido_materno',$this->apellido_materno,true);
		$criteria->compare('run',$this->run,true);
		$criteria->compare('nivel_estudios',$this->nivel_estudios,true);
		$criteria->compare('actividad',$this->actividad,true);
		$criteria->compare('apoderado',$this->apoderado,true);
		$criteria->compare('parentezco',$this->parentezco,true);
		$criteria->compare('direccion',$this->direccion,true);
		$criteria->compare('telefono',$this->telefono,true);
		$criteria->compare('sexo',$this->sexo,true);
		$criteria->compare('email',$this->email,true);
	
		return new CActiveDataProvider($this, array(
					'criteria'=>$criteria,
		));
	}
	
	public function mujeres()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.
	
		$criteria=new CDbCriteria;
		$criteria->condition='sexo="F"';
		$criteria->compare('idfamiliar',$this->idfamiliar);
		$criteria->compare('nombres',$this->nombres,true);
		$criteria->compare('apellido_paterno',$this->apellido_paterno,true);
		$criteria->compare('apellido_materno',$this->apellido_materno,true);
		$criteria->compare('run',$this->run,true);
		$criteria->compare('nivel_estudios',$this->nivel_estudios,true);
		$criteria->compare('actividad',$this->actividad,true);
		$criteria->compare('apoderado',$this->apoderado,true);
		$criteria->compare('parentezco',$this->parentezco,true);
		$criteria->compare('direccion',$this->direccion,true);
		$criteria->compare('telefono',$this->telefono,true);
		$criteria->compare('sexo',$this->sexo,true);
		$criteria->compare('email',$this->email,true);
	
		return new CActiveDataProvider($this, array(
						'criteria'=>$criteria,
		));
	}
	public function getNombreCompleto(){
		return $this->nombres.' '.$this->apellido_paterno.' '.$this->apellido_materno;
	}
}